﻿#ifndef __NGX_FUNC_H__
#define __NGX_FUNC_H__
#define  MYVER  "1.2"

#include <sys/types.h>
#include <stdarg.h>

// 切掉字符串右边的空格
void Rtrim(char *string);
// 切掉字符串左边的空格
void Ltrim(char *string);

// 设置可执行程序标题相关函数
void ngx_init_setproctitle();
void ngx_setproctitle(const char *title);

//和日志，打印输出有关
// 日志初始化，在这里打开日志文件
void ngx_log_init();
// 往屏幕上打印错误信息
void ngx_log_stderr(int err, const char *fmt, ...);
// 写日志的核心函数
void ngx_log_error_core(int level, int err, const char *fmt, ...);
// 给定一个错误编号，将错误编号所对应的错误信息组合成一个字符串存在buf中
u_char *ngx_log_errno(u_char *buf, u_char *last, int err);
// 对于 nginx 自定义的数据结构进行标准格式化输出
u_char *ngx_snprintf(u_char *buf, size_t max, const char *fmt, ...);
// 和上边的ngx_snprintf非常类似
u_char *ngx_slprintf(u_char *buf, u_char *last, const char *fmt, ...);
// 对ngx_vslprintf的简易包装
u_char *ngx_slprintf(u_char *buf, u_char *last, const char *fmt, ...);
// 定制的printf
u_char *ngx_vslprintf(u_char *buf, u_char *last, const char *fmt, va_list args);

//和信号/主流程相关相关
int ngx_init_signals();
void ngx_master_process_cycle();

// 创建守护进程
int ngx_daemon();

void   ngx_process_events_and_timers();

#endif
